package com.bckj.fastboot.core.util;

import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.io.InputStream;

/**
 * 文件工具
 */
public class FileUtils {

	/**
	 * 计算文件md5哈希值
	 *
	 * @param file web文件
	 * @return md5
	 */
	public String calculateMd5(MultipartFile file) {
		try (InputStream is = file.getInputStream()) {
			return DigestUtils.md5Hex(is);
		} catch (IOException e) {
			throw new RuntimeException("Error calculating MD5 hash", e);
		}
	}

	/**
	 * 获得文件后缀
	 *
	 * @param fileName 文件名称
	 * @return 后缀名
	 */
	public static String getFileExtension(String fileName) {
		int lastDotIndex = fileName.lastIndexOf(".");
		if (lastDotIndex == -1) {
			return "";
		}
		return fileName.substring(lastDotIndex + 1);
	}

	/**
	 * 获取 url 中的文件名称
	 *
	 * @param fileUrl 文件地址
	 * @return fileName 文件名称
	 */
	public static String splitUrlFileName(String fileUrl){
		return fileUrl.substring(fileUrl.lastIndexOf('/') + 1);
	}

}
